﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LockCrypt.Core;

namespace LockCrypt.DAL.Exporters {
    /// <summary>
    /// A class which can exporta a database contents to a format.
    /// </summary>
    public interface IDatabaseExporter {
        /// <summary>
        /// Gets or sets the logger to use.
        /// </summary>
        /// <value>The logger.</value>
        ILogProvider Logger { get; set; }

        /// <summary>
        /// Gets or sets the filename to which to write.
        /// </summary>
        /// <value>The name of the file to which to write.</value>
        string FileName { get; set; }

        /// <summary>
        /// Exports the database.
        /// </summary>
        /// <param name="contents">The contents to export.</param>
        
        void ExportDatabase(DatabaseContents contents);
    }
}
